package com.ruoyi.pack.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 移库记录对象 pack_transfer_record
 * 
 * @author ruoyi
 * @date 2024-01-01
 */
public class PackTransferRecord extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 移库记录ID */
    private Long transferId;

    /** 器具ID */
    @Excel(name = "器具ID")
    private Long containerId;

    /** 器具流水编号 */
    @Excel(name = "器具流水编号")
    private String containerCode;

    /** 器具型号编码 */
    @Excel(name = "器具型号编码")
    private String containerModelCode;

    /** 器具型号名称 */
    @Excel(name = "器具型号名称")
    private String containerModelName;

    /** 关联项目ID */
    @Excel(name = "关联项目ID")
    private Long projectId;

    /** 项目编码 */
    @Excel(name = "项目编码")
    private String projectCode;

    /** 项目名称 */
    @Excel(name = "项目名称")
    private String projectName;

    /** 物料编码（满箱移库时记录） */
    @Excel(name = "物料编码")
    private String materialCode;

    /** 物料名称（满箱移库时记录） */
    @Excel(name = "物料名称")
    private String materialName;

    /** 物料数量（满箱移库时记录） */
    @Excel(name = "物料数量")
    private BigDecimal materialQuantity;

    /** 内衬方案（满箱移库时记录） */
    @Excel(name = "内衬方案")
    private String liningScheme;

    /** 来源仓库ID */
    @Excel(name = "来源仓库ID")
    private Long sourceWarehouseId;

    /** 来源仓库名称 */
    @Excel(name = "来源仓库名称")
    private String sourceWarehouseName;

    /** 目的仓库ID */
    @Excel(name = "目的仓库ID")
    private Long targetWarehouseId;

    /** 目的仓库名称 */
    @Excel(name = "目的仓库名称")
    private String targetWarehouseName;

    /** 移库类型（1-满箱移库 2-空箱移库） */
    @Excel(name = "移库类型", readConverterExp = "1=满箱移库,2=空箱移库")
    private String transferType;

    /** 移库阶段（1-出库（在库→在途） 2-入库（在途→在库）） */
    @Excel(name = "移库阶段", readConverterExp = "1=出库,2=入库")
    private String transferStage;

    /** 移库时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "移库时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date transferTime;

    /** 操作员ID */
    @Excel(name = "操作员ID")
    private Long operatorId;

    /** 操作员姓名 */
    @Excel(name = "操作员姓名")
    private String operatorName;

    /** 触发的定位日志ID */
    @Excel(name = "触发的定位日志ID")
    private Long locationLogId;

    /** 是否自动生成（0-手动 1-自动） */
    @Excel(name = "是否自动生成", readConverterExp = "0=手动,1=自动")
    private String autoGenerated;

    /** 父移库记录ID（出库记录对应的入库记录） */
    @Excel(name = "父移库记录ID")
    private Long parentTransferId;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    public void setTransferId(Long transferId) 
    {
        this.transferId = transferId;
    }

    public Long getTransferId() 
    {
        return transferId;
    }
    public void setContainerId(Long containerId) 
    {
        this.containerId = containerId;
    }

    public Long getContainerId() 
    {
        return containerId;
    }
    public void setContainerCode(String containerCode) 
    {
        this.containerCode = containerCode;
    }

    public String getContainerCode() 
    {
        return containerCode;
    }
    public void setContainerModelCode(String containerModelCode) 
    {
        this.containerModelCode = containerModelCode;
    }

    public String getContainerModelCode() 
    {
        return containerModelCode;
    }
    public void setContainerModelName(String containerModelName) 
    {
        this.containerModelName = containerModelName;
    }

    public String getContainerModelName() 
    {
        return containerModelName;
    }
    public void setProjectId(Long projectId) 
    {
        this.projectId = projectId;
    }

    public Long getProjectId() 
    {
        return projectId;
    }
    public void setProjectCode(String projectCode) 
    {
        this.projectCode = projectCode;
    }

    public String getProjectCode() 
    {
        return projectCode;
    }
    public void setProjectName(String projectName) 
    {
        this.projectName = projectName;
    }

    public String getProjectName() 
    {
        return projectName;
    }
    public void setMaterialCode(String materialCode) 
    {
        this.materialCode = materialCode;
    }

    public String getMaterialCode() 
    {
        return materialCode;
    }
    public void setMaterialName(String materialName) 
    {
        this.materialName = materialName;
    }

    public String getMaterialName() 
    {
        return materialName;
    }
    public void setMaterialQuantity(BigDecimal materialQuantity) 
    {
        this.materialQuantity = materialQuantity;
    }

    public BigDecimal getMaterialQuantity() 
    {
        return materialQuantity;
    }
    public void setLiningScheme(String liningScheme) 
    {
        this.liningScheme = liningScheme;
    }

    public String getLiningScheme() 
    {
        return liningScheme;
    }
    public void setSourceWarehouseId(Long sourceWarehouseId) 
    {
        this.sourceWarehouseId = sourceWarehouseId;
    }

    public Long getSourceWarehouseId() 
    {
        return sourceWarehouseId;
    }
    public void setSourceWarehouseName(String sourceWarehouseName) 
    {
        this.sourceWarehouseName = sourceWarehouseName;
    }

    public String getSourceWarehouseName() 
    {
        return sourceWarehouseName;
    }
    public void setTargetWarehouseId(Long targetWarehouseId) 
    {
        this.targetWarehouseId = targetWarehouseId;
    }

    public Long getTargetWarehouseId() 
    {
        return targetWarehouseId;
    }
    public void setTargetWarehouseName(String targetWarehouseName) 
    {
        this.targetWarehouseName = targetWarehouseName;
    }

    public String getTargetWarehouseName() 
    {
        return targetWarehouseName;
    }
    public void setTransferType(String transferType) 
    {
        this.transferType = transferType;
    }

    public String getTransferType() 
    {
        return transferType;
    }
    public void setTransferStage(String transferStage) 
    {
        this.transferStage = transferStage;
    }

    public String getTransferStage() 
    {
        return transferStage;
    }
    public void setTransferTime(Date transferTime) 
    {
        this.transferTime = transferTime;
    }

    public Date getTransferTime() 
    {
        return transferTime;
    }
    public void setOperatorId(Long operatorId) 
    {
        this.operatorId = operatorId;
    }

    public Long getOperatorId() 
    {
        return operatorId;
    }
    public void setOperatorName(String operatorName) 
    {
        this.operatorName = operatorName;
    }

    public String getOperatorName() 
    {
        return operatorName;
    }
    public void setLocationLogId(Long locationLogId) 
    {
        this.locationLogId = locationLogId;
    }

    public Long getLocationLogId() 
    {
        return locationLogId;
    }
    public void setAutoGenerated(String autoGenerated) 
    {
        this.autoGenerated = autoGenerated;
    }

    public String getAutoGenerated() 
    {
        return autoGenerated;
    }
    public void setParentTransferId(Long parentTransferId) 
    {
        this.parentTransferId = parentTransferId;
    }

    public Long getParentTransferId() 
    {
        return parentTransferId;
    }
    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("transferId", getTransferId())
            .append("containerId", getContainerId())
            .append("containerCode", getContainerCode())
            .append("containerModelCode", getContainerModelCode())
            .append("containerModelName", getContainerModelName())
            .append("projectId", getProjectId())
            .append("projectCode", getProjectCode())
            .append("projectName", getProjectName())
            .append("materialCode", getMaterialCode())
            .append("materialName", getMaterialName())
            .append("materialQuantity", getMaterialQuantity())
            .append("liningScheme", getLiningScheme())
            .append("sourceWarehouseId", getSourceWarehouseId())
            .append("sourceWarehouseName", getSourceWarehouseName())
            .append("targetWarehouseId", getTargetWarehouseId())
            .append("targetWarehouseName", getTargetWarehouseName())
            .append("transferType", getTransferType())
            .append("transferStage", getTransferStage())
            .append("transferTime", getTransferTime())
            .append("operatorId", getOperatorId())
            .append("operatorName", getOperatorName())
            .append("locationLogId", getLocationLogId())
            .append("autoGenerated", getAutoGenerated())
            .append("parentTransferId", getParentTransferId())
            .append("remark", getRemark())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("delFlag", getDelFlag())
            .toString();
    }
} 